package com.hdjd.dao;

import com.hdjd.entities.Goods;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface GoodsDao {
    int deleteByPrimaryKey(Integer goId);

    int insert(Goods record);

    boolean insertGoods(Goods goods);

    /**
     * 根据商品id查询商品信息
     * @param goId
     * @return
     */
    Goods selectGoodsByGoId(Integer goId);

    /**
     * 根据商家id查询该商家所有商品集合
     * 若 goStatus 不为空，则加上 goStatus查询
     * 若 goNm 不为空，则加上 goNm查询
     * @param accId
     * @param goStatus
     * @param goNm
     * @return
     */
    List<Goods> selectGoodsListByAccId(@Param("accId") Integer accId, @Param("goStatus") Integer goStatus, @Param("goNm") String goNm, @Param("startSize") Integer startSize, @Param("pageSize") Integer pageSize);

    /**
     * 根据商品名称查询商品信息或者查询所有商品信息
     * @param goNm
     * @param startSize
     * @param pageSize
     * @return
     */
    List<Goods> selectGoodsListByGoNmOrSelectAll(@Param("goNm") String goNm, @Param("startSize") Integer startSize, @Param("pageSize") Integer pageSize);


    int updateByPrimaryKeySelective(Goods record);
    /**
     * 根据商品id更新商品信息
     * @param goods
     * @return
     */
    boolean updateGoodsByGoId(Goods goods);

    /**
     * 根据商品id上下架商品
     * @param goId
     * @return
     */
    boolean OnShelfAndOffShelfGoodsByGoId(@Param("goId") Integer goId, @Param("goStatus") Integer goStatus);

    /**
     * 首页查询商品的总数
     * @param goNm
     * @param schoolId
     * @return
     */
    Integer selectAllGoodsNum(@Param("goNm") String goNm, @Param("schoolId") Integer schoolId);

    /**
     * 根据商家id查询某商家商品数量
     * @param accId
     * @param goStatus
     * @param goNm
     * @return
     */
    Integer countGoodsNumByAccId(@Param("accId") Integer accId, @Param("goStatus") Integer goStatus, @Param("goNm") String goNm);

    int updateByPrimaryKey(Goods record);

}